<?php
/**
 * 错误处理
 */
// 简单的处理：die()
echo "openfile";
//fopen("notexit","r");

if(!file_exists("notexit")){
    //die("File not found <br>");
}else{
    fopen("notexit","r");
}
?>

<?php
//自定义错误处理器
/**
 *至少两个参数error level && error message
 * 其余的三个可选参数：file,line_number(可选。规定错误发生的行号。)
 * ,error context(可选。规定一个数组，包含了当错误发生时在用的每个变量以及它们的值。)
 * error_function(error_level,error_message,error_file,error_line,error_context)
 *
值	常量          	描述
2	E_WARNING	非致命的 run-time 错误。不暂停脚本执行。
8	E_NOTICE    Run-time 通知。
                脚本发现可能有错误发生，但也可能在脚本正常运行时发生。
256	E_USER_ERROR	致命的用户生成的错误。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR。
512	E_USER_WARNING	非致命的用户生成的警告。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING。
1024	E_USER_NOTICE	用户生成的通知。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE。
4096	E_RECOVERABLE_ERROR	可捕获的致命错误。类似 E_ERROR，但可被用户定义的处理程序捕获。(参见 set_error_handler())
8191	E_ALL       所有错误和警告，除级别 E_STRICT 以外。
（在 PHP 6.0，E_STRICT 是 E_ALL 的一部分）
*/
function customError($errno,$errstr){
    echo "<b>Error</b>: [$errno] $errstr.<br />";
    echo "Ending Script <br />";
}

//触发错误，所有的错误都由set_error_handler设置的函数来处理
//set_error_handler("customError");
//echo $noexit;
?>

<?php
//触发错误方法2
$test = 2;
if($test > 1){
    trigger_error("value must below 2");
}
?>